#pragma once

#include "IXBaseObj.h"

struct stCustomMeasureInfo
{
    IXBaseObj*  pControl;
    UINT        uCtlID;
    UINT        uItemID;
    UINT        uItemWidth;
    UINT        uItemHeight;
    ULONG_PTR   uItemData;
};

struct stCustomDrawInfo
{
    IXBaseObj*  pControl;
    UINT        uCtlID;
    UINT        uItemID;
    UINT        uItemState;
    XCANVAS     xCanvas;
    RECT        rcItem;
    XWND        xWnd;
    ULONG_PTR   uItemData;
};

/**
 *  IXCustomDraw Interface.
 *
 */
class ExportXSkinLib IXCustomDraw : public IXBaseObj
{
    DEF_INTERFACE(IXCustomDraw, _T("{68EA1857-DE96-40f4-B851-34F24C58D37C}"));

public:
    virtual void STDMETHODCALLTYPE   OnMeasureItem(IN stCustomMeasureInfo* pInfo) = 0;
    virtual void STDMETHODCALLTYPE   OnDrawItem(IN stCustomDrawInfo* pInfo) = 0;
};
